<!DOCTYPE html>
<?php
if (file_exists(dirname(__FILE__) . '/env.php')) {
    require_once dirname(__FILE__) . '/env.php';
}
define('アンインストールキー返却関数',
<<<EOD
<?php
function MD5アンインストールキーを返す()
{
    return '%s';
}
EOD
);
class 定数
{
    const 作業ステップリクエストキー = 'step';
    const アンインストールキー保存作業 = 'ukey';
    const プログラムコード削除作業 = 'pdel';
    const 操作選択作業 = 'select';
    const アンインストールキー確認作業 = 'cukey';
    const メニュー実行作業 = 'domenu';
    const アンインストールキーリクエストキー = 'uk';
    const アンインストールキー保存ファイル名 = 'delkey.php';

    /***アプリケーション固有定数*/
    const グーグルアカウント入力作業 = 'gglin';
    const グーグルアカウント登録作業 = 'gglreg';
    const グーグルUIDリクエストキー = 'guid';
    const グーグルパスワードリクエストキー = 'gpass';
    const 入り口ファイル名 = 'index.php';
}

if (file_exists(dirname(__FILE__).'/'.定数::アンインストールキー保存ファイル名)) {
    require_once dirname(__FILE__).'/'.定数::アンインストールキー保存ファイル名;
}
function 入り口URLを返す()
{
	$ret = $_SERVER['REQUEST_SCHEME'].'://';
	$realPath = dirname(__FILE__);
	if (PATH_SEPARATOR == ';'){
		$realPath = str_replace("\\", '/', $realPath);
	}
	$ret .= str_replace($_SERVER['DOCUMENT_ROOT'], $_SERVER['HTTP_HOST'], $realPath);
	$ret .= '/'. 定数::入り口ファイル名;
	return $ret;
}
function アンインストールキーを保存する($アンインストールリクエストキー)
{
	$md5Key = md5($アンインストールリクエストキー);
	$code = sprintf(アンインストールキー返却関数, $md5Key);
	file_put_contents(dirname(__FILE__).'/'.定数::アンインストールキー保存ファイル名, $code);
}
function アンインストールキーを確認する()
{
	if (empty($_REQUEST[定数::アンインストールキーリクエストキー])) {
		return FALSE;
	}
	if (MD5アンインストールキーを返す() != md5($_REQUEST[定数::アンインストールキーリクエストキー])){
		return FALSE;
	}
	return TRUE;
}
/**
 * ディレクトリ強制削除
 */
function remove_directory($dir) {
	if ($handle = opendir("$dir")) {
		while (false !== ($item = readdir($handle))) {
			if ($item != "." && $item != "..") {
				if (is_dir("$dir/$item")) {
					remove_directory("$dir/$item");
				} else {
					unlink("$dir/$item");
				}
			}
		}
		closedir($handle);
		rmdir($dir);
	}
}
function プログラムコード削除()
{
	$zip_path = dirname(__FILE__) . '/' . 'gcmemo.zip';
	$zip = new ZipArchive();
	if( $zip->open($zip_path) === true ){
		$index = $zip->numFiles;
		for ($i = 0; $i < $index; $i++) {
			$ファイル名 = dirname(__FILE__).'/'.$zip->getNameIndex($i);
			if ($ファイル名 == dirname(__FILE__).'/'.'gcmemo_setup.php') {
				continue;
			}
			if (file_exists($ファイル名)){
				if (is_dir($ファイル名)) {
					remove_directory($ファイル名);
				} else {
					unlink($ファイル名);
				}
			}
		}
	} else {
		return FALSE;
	}
}
/**************アプリケーション設定ファイル構築***************************************/
function 環境コードモジュール作成()
{
	$realPath = dirname(__FILE__);
	if (PATH_SEPARATOR == ';'){
		$realPath = str_replace("\\", '/', $realPath);
	}
	$ベースパス = str_replace($_SERVER['DOCUMENT_ROOT'], '', $realPath) . '/';
	$ライブラリパス = $realPath . '/library';
	$code = file_get_contents(dirname(__FILE__) . '/env.php.base');
	$環境コード = sprintf($code, $ライブラリパス, $ライブラリパス, $ベースパス);
	return file_put_contents(dirname(__FILE__) . '/env.php', $環境コード);
}
function アプリケーション設定ファイル削除()
{
	if (file_exists(dirname(__FILE__) . '/env.php')) {
		unlink(dirname(__FILE__) . '/env.php');
	}
	if (file_exists(dirname(__FILE__) . '/ggc.php')) {
		unlink(dirname(__FILE__) . '/ggc.php');
	}
	if (file_exists(dirname(__FILE__) . '/delkey.php')) {
		unlink(dirname(__FILE__) . '/delkey.php');
	}
	if (file_exists(dirname(__FILE__) . '/gcmemo.zip')) {
		unlink(dirname(__FILE__) . '/gcmemo.zip');
	}
	if (file_exists(dirname(__FILE__) . '/library')) {
		remove_directory(dirname(__FILE__) . '/library');
	}
	if (file_exists(dirname(__FILE__) . '/Zend.zip')) {
		unlink(dirname(__FILE__) . '/Zend.zip');
	}
}
/***
 * ランニングコード
 */
if (file_exists(dirname(__FILE__).'/'.定数::アンインストールキー保存ファイル名)){
	require_once dirname(__FILE__).'/'.定数::アンインストールキー保存ファイル名;
	if (empty($_REQUEST[定数::作業ステップリクエストキー])){
		$_REQUEST[定数::作業ステップリクエストキー] = 定数::操作選択作業;
	}
}
$エラーメッセージ = '';
$H1タイトル = 'GCMEMO インストーラ';
if (!empty($_REQUEST[定数::作業ステップリクエストキー])) {
	switch ($_REQUEST[定数::作業ステップリクエストキー]) {
		case 定数::アンインストールキー保存作業:
			if (!preg_match("/^[a-zA-Z0-9]+$/", $_REQUEST[定数::アンインストールキーリクエストキー])) {
				$エラーメッセージ = '入力できる文字は英数字だけです。';
				$_REQUEST[定数::作業ステップリクエストキー] = '';
				break;
			}
			アンインストールキーを保存する($_REQUEST[定数::アンインストールキーリクエストキー]);
			$H1タイトル = 'アンインストールキー保存完了';
			環境コードモジュール作成();
			break;
		case 定数::アンインストールキー確認作業:
			$H1タイトル = 'アンインストールキー確認';
			break;
		case 定数::プログラムコード削除作業:
			$H1タイトル = 'プログラムコード削除';
			$状態 = アンインストールキーを確認する();
			if ($状態 === FALSE) {
				$エラーメッセージ  = 'アンインストールキーコードが間違っています。';
				$_REQUEST[定数::作業ステップリクエストキー] = 定数::アンインストールキー確認作業;
				break;
			}
			$状態 = プログラムコード削除();
			アプリケーション設定ファイル削除();
			break;
		case 定数::操作選択作業:
			break;
		case 定数::グーグルアカウント入力作業:
			$H1タイトル = 'グーグルアカウント登録';
			break;
		case 定数::グーグルアカウント登録作業:
			$H1タイトル = 'グーグルアカウント登録';
			$状態 = グーグルアカウント情報保存();
			if ($状態 === FALSE) {
				$エラーメッセージ = "グーグルアカウント情報の入力に誤りがあります。";
				$_REQUEST[定数::作業ステップリクエストキー] = 定数::グーグルアカウント入力作業;
				break;
			}
			$入り口URL = 入り口URLを返す();
			break;
		default:
			$_REQUEST[定数::作業ステップリクエストキー]  = '';
			break;
	}
} else {
	$_REQUEST[定数::作業ステップリクエストキー]  = '';
}
?>
<!-- =================画面レイアウト================== -->
<html>
<head>
<meta charset="UTF-8">
<meta name="keywords" content="">
<title>notitle</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<link href="my.css" rel="stylesheet">
<script type="text/javascript">
$(function() {

});
function startUninst(){
    $("<?php echo 定数::プログラムコード削除作業;?>").css("display", "block");
    fm10.submit();
}
</script>
</head>
<body>
<div id="header">
<div class="small">GCMEMOサービスインストーラ</div>
<h1><?php echo $H1タイトル;?></h1>
</div>
<hr />

<!-- ====================================================== -->
<?php if (empty($_REQUEST[定数::作業ステップリクエストキー])) {?>
<!-- アンインストールキー入力画面 -->
<div>サービスをアンインストールするときに使用するキーコードを英数字で入力してください。</div>
<?php if ($エラーメッセージ != '') {?>
    <div style="color: red"><?php echo $エラーメッセージ;?></div>
<?php }?>
<div>&nbsp;</div>
<div>
<form action="" id="id001" method="post" name="fm1" target="_self">
<input type="hidden" name="<?php echo 定数::作業ステップリクエストキー;?>" value="<?php echo 定数::アンインストールキー保存作業;?>" />
<div>
<table border="0" cellpadding="1" cellspacing="1" style="width:500px">
	<tbody>
		<tr>
			<td style="text-align: right; width: 82px;">キーコード：</td>
			<td style="width: 404px;">
			     <input size="40" type="text" name="<?php echo 定数::アンインストールキーリクエストキー;?>" />
			</td>
		</tr>
		<tr>
			<td style="width: 82px;">&nbsp;</td>
			<td style="width: 404px;"><input name="submit" type="submit" value="OK" /></td>
		</tr>
	</tbody>
</table>
</div>
</form>
</div>
<!-- /アンインストールキー入力画面 -->
<?php }?>

<!-- ======================================================== -->
<?php if ($_REQUEST[定数::作業ステップリクエストキー] == 定数::アンインストールキー保存作業) {?>
<!-- アンインストールキー保存完了画面 -->
<div>アンインストールキーを保存しました。</div>
<form name="fm3" method="post" target="_self" action="">
<input type="hidden" name="<?php echo 定数::作業ステップリクエストキー;?>" value="<?php echo 定数::グーグルアカウント入力作業;?>" />
<input type="submit" name="enter" value="Googleアカウント登録へ" />
</form>
<!-- /アンインストールキー保存完了画面 -->
<?php }?>
<?php if ($_REQUEST[定数::作業ステップリクエストキー] == 定数::アンインストールキー確認作業) {?>
<!-- アンインストールキー確認画面 -->
<div>アンインストールキーコードを入力してください。</div>
<?php if ($エラーメッセージ != '') {?>
    <div style="color: red"><?php echo $エラーメッセージ;?></div>
<?php }?>
<div>&nbsp;</div>
<div>
<form action="" id="id001" method="post" name="fm10" target="_self">
<input type="hidden" name="<?php echo 定数::作業ステップリクエストキー;?>" value="<?php echo 定数::プログラムコード削除作業;?>" />
<div>
<table border="0" cellpadding="1" cellspacing="1" style="width:500px">
	<tbody>
		<tr>
			<td style="text-align: right; width: 82px;">キーコード：</td>
			<td style="width: 404px;">
			     <input size="40" type="text" name="<?php echo 定数::アンインストールキーリクエストキー;?>" />
			</td>
		</tr>
		<tr>
			<td style="width: 82px;">&nbsp;</td>
			<td style="width: 404px;"><input name="btn1" type="button" value="OK" onClick="startUninst();" /></td>
		</tr>
	</tbody>
</table>
</div>
</form>
</div>
<div id="<?php echo 定数::プログラムコード削除作業;?>" style="color: GREEN; display:none">プログラムコードを削除しています。しばらくお待ちください。</div>
<!-- /アンインストールキー確認画面 -->
<?php }?>

<!-- ====================================================== -->
<?php if ($_REQUEST[定数::作業ステップリクエストキー] == 定数::プログラムコード削除作業) {?>
<!-- プログラムコード削除完了画面 -->
<div>プログラムコードを削除しました。</div>
<div>ご利用ありがとうございました。</div>
<!-- /プログラムコード削除完了画面 -->
<?php }?>

<!-- ======================================================= -->
<?php if ($_REQUEST[定数::作業ステップリクエストキー] == 定数::グーグルアカウント入力作業) {?>
<!-- グーグルアカウント入力 -->
<?php if ($エラーメッセージ != '') {?>
    <div style="color: RED;"><?php echo $エラーメッセージ;?></div>
<?php }?>
<div>
<form action="" id="id001" method="post" name="fm5" target="_self">
<input type="hidden" name="<?php echo 定数::作業ステップリクエストキー;?>" value="<?php echo 定数::グーグルアカウント登録作業;?>" />
<div>
<table border="0" cellpadding="1" cellspacing="1" style="width:500px">
	<tbody>
		<tr>
			<td style="text-align: right; width: 82px;">ユーザ名：</td>
			<td style="width: 404px;">
			     <input size="40" type="text" name="<?php echo 定数::グーグルUIDリクエストキー;?>" />
			</td>
		</tr>
		<tr>
			<td style="text-align: right; width: 82px;">パスワード：</td>
			<td style="width: 404px;">
			     <input size="40" type="text" name="<?php echo 定数::グーグルパスワードリクエストキー;?>" />
			</td>
		</tr>
		<tr>
			<td style="width: 82px;">&nbsp;</td>
			<td style="width: 404px;"><input name="submit" type="submit" value="OK" /></td>
		</tr>
	</tbody>
</table>
</div>
</form>
</div>
<!-- /グーグルアカウント入力 -->
<?php }?>

<!-- ======================================================= -->
<?php if ($_REQUEST[定数::作業ステップリクエストキー] == 定数::グーグルアカウント登録作業) {?>
<!-- グーグルアカウント登録完了画面 -->
<div>グーグルアカウントを保存しました。</div>
<div>下のURLからGoogleカレンダーメモをご利用ください。</div>
<div><a href="<?php echo $入り口URL;?>"><?php echo $入り口URL;?></a></div>
<?php if ($入り口URL == 'http://localhost/gcmemo/index.php') {?>
    <div>
        インストール先のPCとスマホが同じ無線LANにつながっている場合、スマホでは以下のURLからご利用になれます。<br />
        <a href="<?php echo 'http://'.gethostbyname(gethostname()).'/gcmemo/index.php';?>">
            <?php echo 'http://'.gethostbyname(gethostname()).'/gcmemo/index.php';?>
        </a>
    </div>
<?php }?>
<!-- /グーグルアカウント登録完了画面 -->
<?php }?>

<!-- =============================================== -->
<?php if ($_REQUEST[定数::作業ステップリクエストキー] == 定数::操作選択作業) {?>
<!-- 作業選択メニュー画面 -->
<div style="line-height:2.5;">
<form action="" id="id002" method="post" name="fm2" target="_self">
<input type="hidden" name="<?php echo 定数::作業ステップリクエストキー;?>" value="<?php echo 定数::グーグルアカウント入力作業;?>" />
<div style="text-align: center;"><input name="menu" type="submit" value="Googleアカウント登録" /></div>
</form>
<form action="" id="id002a" method="post" name="fm2a" target="_self">
<div style="text-align: center;"><input name="menu" type="submit" value="バージョンアップ" /></div>
</form>
<form action="" id="id002b" method="post" name="fm2b" target="_self">
<input type="hidden" name="<?php echo 定数::作業ステップリクエストキー;?>" value="<?php echo 定数::アンインストールキー確認作業;?>" />
<div style="text-align: center;"><input name="menu" type="submit" value="アンインストール" /></div>
</form>
</div>
<!-- /作業選択メニュー画面 -->
<?php }?>

<hr />
</body>
</html>